Option Explicit

'################################################################
' Descriptor
' 临时数据表接口
'################################################################

'################################################################
' Property
'################################################################
' 当前临时表的名称
Public Property Get Name() As String
End Property

' 获取表内的数据行数
Public Property Get DataCount() As String
End Property

'################################################################
' Function
'################################################################
' 添加一行新的数据
Public Sub addNewRow()
End Sub

' 返回指定列索引的所有正确数据
' 因为表中包含 String、Number 类型的数据所以这里使用 Variant
' @return List<Variant>
Public Function getRightColumnDataByIndex(ByRef index As Integer) As Collection
End Function

' 返回指定列索引的所有异常数据
' 因为表中包含 String、Number 类型的数据所以这里使用 Variant
' @return List<Variant>
Public Function getWrongColumnDataByIndex(ByRef index As Integer) As Collection
End Function

' 获取当前表内的所有数据
' @return List<IDataFrameRow>
Public Function getAllData() As Collection
End Function

' 获取当前表内的所有符合数据
' @return List<IDataFrameRow>
Public Function getRightData() As Collection
End Function

' 获取当前表内的所有不符合规则的数据
' @return List<IDataFrameRow>
Public Function getWrongData() As Collection
End Function

' 写入一个列的数据
' @param rowIndex 行索引，从 1 开始
' @param colName 列名
' @param val 需要设置到指定单元的数据
' @exception 如果行索引小于 1 或者大于当前最大行数，将会抛出异常
' @exception 如果列名不存在，则抛出异常
Public Sub writeDataByColName(ByRef rowIndex As Long, ByRef sc As SqlColumnDefine, ByRef val As Variant)
End Sub

' 为指定行附加【正确数据】的标签
' @param rowIndex 行索引，从 1 开始
Public Sub setRightDataTag(ByRef rowIndex As Long)
End Sub

' 为指定行设置【错误数据】的标签
' @param rowIndex 行索引，从 1 开始
Public Sub setWrongDataTag(ByRef rowIndex As Long)
End Sub

' 添加指定行所属的标签
' @param rowIndex 行索引，从 1 开始
' @param tag 标签内容
Public Sub addRowTag(ByRef rowIndex As Long, ByRef tag As String)
End Sub

' 添加指定行包含的表达式（列定义 + 检索条件）
' @param rowIndex 行索引，从 1 开始
' @param expression 需要添加的表达式
Public Sub addRowExpression(ByRef rowIndex As Long, ByRef expression As IExpression)
End Sub